package com.eco.fanliapp.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.eco.fanliapp.entity.AppCompany;
import org.springframework.cache.annotation.Cacheable;

import java.util.HashMap;
import java.util.List;

/**
 * 公司 数据层
 * 
 * @author xiaoxx
 * @date 2019-05-12
 */
public interface AppCompanyMapper extends BaseMapper<AppCompany>
{
	/**
     * 查询公司信息
     * 
     * @param companyId 公司ID
     * @return 公司信息
     */
	AppCompany selectAppCompanyById(Integer companyId);
	
	/**
     * 查询公司列表
     *
     * @param appCompany 公司信息
     * @return 公司集合
     */
	List<AppCompany> selectAppCompanyList(AppCompany appCompany);

	/**
     * 新增公司
     * 
     * @param appCompany 公司信息
     * @return 结果
     */
	int insertAppCompany(AppCompany appCompany);
	
	/**
     * 修改公司
     * 
     * @param appCompany 公司信息
     * @return 结果
     */
	int updateAppCompany(AppCompany appCompany);
	
	/**
     * 删除公司
     * 
     * @param companyId 公司ID
     * @return 结果
     */
	int deleteAppCompanyById(Integer companyId);
	
	/**
     * 批量删除公司
     * 
     * @param companyIds 需要删除的数据ID
     * @return 结果
     */
	int deleteAppCompanyByIds(String[] companyIds);

	/**
	 * 查询分公司信息
	 * @param userId
	 * @return
	 */
	AppCompany findtAppCompany(Long userId);

	/**
	 * 
	 * @param hashMap
	 * @return
	 */
	List<AppCompany> findCommpanyFourALL(HashMap<String, Object> hashMap);

	/**
	 *
	 * @param hashMap
	 * @return
	 */
	int updateCommpanyFour(HashMap<String, Object> hashMap);


	/**
	 * 添加配置公司
	 * @param hashMap
	 * @return
	 */
	int insert(HashMap<String, Object> hashMap);

    /**
     * 
     * @return
     */
    @Cacheable(value="selectAppParentCompany#${select.cache.timeout:1800}#${select.cache.refresh:60}")
    AppCompany selectAppParentCompany();

	/**
	 * 
	 * @param appCompany
	 * @return
	 */
	int updateType(AppCompany appCompany);

	/**
	 * 根据当前邀请码查询对应公司
	 * @param string
	 * @return
	 */
	AppCompany findtAppCompanyInviteCode(String string);
}